package daily.kou2022_0228;
//606. 根据二叉树创建字符串
public class Num606_tree2str {
    private StringBuilder sb = new StringBuilder();
    public String tree2str(TreeNode root) {
        if (root==null){
            return "";
        }
        //先访问根节点
        sb.append(root.val);
        //先去处理左子树
        if (root.left!=null){
            sb.append('(');
            tree2str(root.left);
            sb.append(')');
        }else {
            //此时左子树为空,判断右子树
            if (root.right!=null){
                sb.append("()");
            }

        }
        //再去处理右子树
        if (root.right!=null){
            sb.append('(');
            tree2str(root.right);
            sb.append(')');
        }
        return sb.toString();

    }





//    private StringBuilder sb = new StringBuilder();
//
//
//    public String tree2str(TreeNode root) {
//
//        if (root==null){
//
//            return "";
//        }
//        //先访问根节点
//        sb.append(root.val);
//        //再去处理左子树
//        if (root.left!=null){
//            //递归去转换左子树
//            sb.append("(");
//            //拼接左子树
//            tree2str(root.left);
//            sb.append(")");
//
//        }else {
//            //此时左树为空，判断右树
//            if (root.right!=null){
//                sb.append("()");
//            }
//        }
//        //再去处理右子树
//        if (root.right!=null){
//            sb.append("(");
//            tree2str(root.right);
//            sb.append(")");
//        }
//        return sb.toString();
//
//
//
//
//    }
}
